package ar.pegasus.clasificador.entidades;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

@Entity
@Table(name="Localidad")
public class Localidad  implements ElementoAplicacion {
	private static final long serialVersionUID = -7947082444647901202L;

	private int idLocalidad;
	private Seccion seccion;
	private String nombre;
	private String circuito;
	private Localidad localidadPrincipal;
	
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
	public int getIdLocalidad() {
		return idLocalidad;
	}
	public void setIdLocalidad(int idLocalidad) {
		this.idLocalidad = idLocalidad;
	}
	
	@Column(name="nombre")
	public String getNombre() {
		return nombre;
	}
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	@ManyToOne
	@JoinColumn(name="F_IdSeccion", nullable=false)
	public Seccion getSeccion() {
		return seccion;
	}

	public void setSeccion(Seccion seccion) {
		this.seccion = seccion;
	}

	@Column(name="circuito")
	public String getCircuito() {
		return circuito;
	}

	public void setCircuito(String circuito) {
		this.circuito = circuito;
	}

	public void setLocalidadPrincipal(Localidad localidadPrincipal) {
		this.localidadPrincipal = localidadPrincipal;
	}
	
	@ManyToOne
	@JoinColumn(name="F_IdLocalidadPrincipal", nullable=true)
	public Localidad getLocalidadPrincipal() {
		return localidadPrincipal;
	}
	
	@Override
	public String toString(){
		return getNombre();
	}
	
	@Override
	public boolean equals(Object obj) {
		if(this == obj)
			return true;
		if (obj == null) 
			return false;
		if(getClass() != obj.getClass())
			return false;

		Localidad other = ((Localidad) obj);
		if (idLocalidad == 0 && other.idLocalidad == 0){
			return super.equals(other);
		}
		if(idLocalidad != other.idLocalidad)
			return false;
		return true;
	}
}
